1. The Field of the Invention
The present invention relates to the field of notification technology. Specifically, the present invention relates to methods, systems and computer program products for delivering notifications in a manner that efficiently scales to the number and variety of notifications and users being serviced by the notifications.
2. Background and Related Art
Most would agree that intelligent decision-making requires access to relevant and timely information. Computer networking has greatly enhanced our ability to access such information, resulting in this modern era often being termed “the information age”.
Some access to information is synchronous or “pull-oriented”. In other words, information is accessed each time a request for the information is submitted. For example, users may use Internet-enabled computers to request access to information such as Web pages, e-mail accounts, calendaring applications, or the like. In this manner, synchronous access allows for broad control over the type of information accessed.
There are some cases in which it may be inefficient to synchronously access information. For example, some information changes relatively often. A user may desire to know the current information despite such frequent changes. It that case, synchronous access would require frequent requests for updated information. Such information may include, for example, stock prices. In addition, perhaps the user does not care about the information unless the information has a certain value. For example, perhaps a user is not interested in a certain fifteen-year mortgage rate unless the value drops below a threshold percentage, at which time the user may consider refinancing. In this case, synchronous access might result in numerous requests for updated information even if the interest rate was not yet low enough to be interesting to the user.
In order to avoid these inefficiencies, computer networks may also be used to implement notifications in which a user subscribes to be notified upon the occurrence of predetermined events. If the event occurs, the notification is dispatched to the user without the user needing to request each notification. Such communication is often termed asynchronous or “push-oriented” since there need not be a user-issued request before each notification.
Due to the number of users and devices that have subscribed to notifications, there are a large number of notifications that traverse various networks. Accordingly, what is desired are methods, systems, and computer program products for delivering notifications in a manner that scales to the current number and variety of notifications delivered and users served, and that delivers notification in an efficient manner. Also, since the number of notifications delivered and users served is subject to change with time, what is desired are methods, systems, and computer program products that scale notification delivery in an efficient manner.